#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//int* findErrorNums(int* nums, int numsSize, int* returnSize)
//{
//    int i = 0;
//    int* errorNums = malloc(sizeof(int) * 2);
//    int k = 0;
//    int twice = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        int count = 0;
//        int j = 0;
//        for (j = 0; j < numsSize; j++)
//        {
//            if (nums[i] == nums[j])
//            {
//                count++;
//            }
//        }
//        if (count == 2)
//        {
//            twice = nums[i];
//            errorNums[k++] = nums[i];
//            break;
//        }
//    }
//    int num1 = 0;
//    int num2 = 0;
//    int normal[10000] = { 0 };
//    for (i = 0; i < numsSize; i++)
//    {
//        num1 += nums[i];
//    }
//    for (i = 1; i <= numsSize; i++)
//    {
//        normal[i] = i;
//        num2 += normal[i];
//    }
//    num1 -= twice;
//    errorNums[k] = num2 - num1;
//    return errorNums;
//}

#include<stdlib.h>
int compare(const void* a, const void* b)
{
    return (*(int*)a - *(int*)b);
}

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{
    qsort(nums1, nums1Size, sizeof(int), compare);
    int i = 0;
    int* num = (int*)malloc(10 * sizeof(int));
    int count = 0;

    for (i = 0; i < nums1Size; i++)
    {
        if (nums1[i + 1] == nums1[i])
        {
            continue;
        }
        int j = 0;
        for (j = 0; j < nums2Size; j++)
        {
            if (nums1[i] == nums2[j])
            {
                num[count++] = nums1[i];
                break;
            }
        }
    }
    *returnSize = count;
    return num;
}

int main()
{
    
    //int nums[4] = { 1,2,2,4 };
    //int numsSize = 4;
    //int* returnSize = nums;
    //int* normal=findErrorNums(nums, 4, returnSize);
    //printf("%d,%d", normal[0], normal[1]);

    int nums1[4] = { 1,2,2,1 };
    int nums2[2] = { 2,2 };
    int nums1Size = 4;
    int nums2Size = 2;
    int* returnSize = nums1;
    int* num = intersection(nums1, nums1Size, nums2, nums2Size, returnSize);
    
}